What is the Arcane Engine?

Arcane is a sub-engine and accompanying toolset for the Unity game engine for the development of retro 2.5D shooters like Doom, Duke Nukem, and Blood. Inspired by ID-Tech and Build Engine, Arcane attempts to replicate the feel and function of these engines and their games while remaining easily modifiable and user-friendly. This project is entirely clean-room engineered, utilises no code from other engines, and is completely free and open-source under the MIT license. Please feel free to modify, improve and distribute this project as much as you like, even for commercial purposes.

Completely Backward-Compatible

Using an older version of Unity? So are we!

The Arcane Engine was developed predominantly using Unity 5.6 Pro, and has been fully tested all the way up to 2021.

Arcane Engine is full compatible from Unity 5.6, all the way through 2017, 2018, 2019, 2020, to the latest version of 2021.

Although visuals controlled by Unity internally may be slightly different, every thing from window layouts to image effects function identically all the way from 5.6 through to 2021.

Extensive Control

Want something a little more custom? No problem.

The Arcane Manager allows a substantial degree of control for your project, from simple player movement speeds and look limits, to player height, bob speeds and heights, in-engine preferences, UI scales, and comprehensive camera effects.

As much as possible is available for easy modification through the Manager to provide as frustration-free customisation as possible.

Need additional modification of the engine? Most of the engine’s code is commented to allow user edits and additions, and documentation details many of the variable names and uses to make it as easy as possible to make something a little more custom.

User-Friendly Controls

Arcane uses a custom control manager built directly into the Manager to allow for a more streamlined development process.

Want to edito controls as easily as you can in games? Now you can!

Simply click on the button on the right-most side of the control label, then press the corresponding key on the keyboard. Want to remove a feature such as keyboard aim? Set the control to ‘None’.

 All controls are clearly labelled and placed in categories for easier reading and are simple to change. Using the ‘Stored Controls’ rollout at the bottom allows you to both see a directory of all the controls, as well as copy their in-code reference for use in your own custom code. No more guessing!

Simple Level Editing

Need to add weapons, pickups or other gameplay elements to your scene? We’ve got an app for that.

To be more accurate, we’ve got a window for that. Where you can add custom start positions, weapon pickups, health/armour pickups, modifiers (slow-motion, quad damage, etc), kill-boxes, switches, jump pads, and exits.

This dynamically generates these necessary elements as and when you need them, and provides further settings in the editor once they are in the scene.

 

Comprehensive Weapons Editor

Create and edit weapon statistics using weapon files.

Weapon files hold all the important statistics for each weapon, such as their name, type (melee, projectile, throwable), fire rate, reload speed, damage her hit, assigned key, optional panic keys, splash damage, max ammo and magazine sizes.

Don’t want to require reload (bottomless clip)? You don’t need to, simply disable the ‘Needs Reload’ option in the Weapons Editor.

Want unlimited ammo (e.g. for melee weapons)? Set the capacity to ‘-1’.

Basic Error Checking

No need to wonder whether you’ve set up your project or scene correctly for Arcane, the Manager has a built-in error-checking system to check required layer, and required scene objects exist.

Repair any missing content with a single click!

Simply open up the Manager and view the checklists.

Commented Code

The majority of code in Arcane has been commented for easy editing and understanding of the code, variables, and how it all works.

Many comments correspond to other labels around the Manager.

Feel free to edit or add to this, see where different methods are triggered, add your own events alongside them, and move things around should you want to.

Completely Open Source C# Code

Arcane Engine is a completely open-source project.

With largely commented code and generally good readability, Arcane is designed for clear use and modifiability.

Want to change something? Do it!

Want to add to create a fork? Go ahead!

Built-in Timer Functions

Built-in timer available to track individual level speeds, and overall session play.

Ideal for speedrunning and streaming, Arcane comes with built-in realtime timers available to run both in the background, and optionally on-screen.

Want to dump play session times with individual level-splits to a text file? That’s available, too!

 

Where to download